﻿using System;
using System.Collections.Generic;
using System.Text;

namespace DiscoveryLogic.TextMining.DocumentSimilarity
{
    /// <summary>
    /// reverse the process used by nearest neighbor. Look at the documents 
    /// that are retrieved, and then generate the search string that would 
    /// retrieve exactly these documents.
    /// 
    /// Steps:
    /// 1. find a covering rule set that completely separate the two classes
    /// 2. prune the rule set into a sequence of smaller rule sets
    /// 3. evaluate the rule sets and pick the best one as the final solution
    /// 
    /// Greedy rule induction for obtaining a covering rule set (once it makes 
    /// a decision on the next word, it does not revise that decision)
    /// 1. grow conjuctive phrase T (until false positive errors are zero) by greedily 
    /// adding words that minimize error
    /// 2. record T as the next rule R. remove documents covered by T, and 
    /// continue with step 1 until all documents are covered
    /// 
    /// Pruning decision rules -- weakest link pruning
    /// 1. compute err/word for each single deletion operation (word orphrase)
    /// 2. select the operation with the minimum err/word
    /// 3. if more words remain, go back to step 1. otherwise the selected 
    /// set of phraseis the one where err/word is minimum over all 
    /// cumulative deletion operations.
    /// 4. store the selected set of phrases and repeat the whole process by pruning 
    /// that set, starting at step 1
    /// </summary>
    public class NaiveBayesFeatureSelection
    {
    }
}
